package com.platform.scheduleJob.service;

import com.platform.common.base.service.BaseService;
import com.platform.common.page.Page;
import com.platform.scheduleJob.model.ScheduleJob;
import org.quartz.SchedulerException;

import java.util.List;

/**
 * Created by yanzengbao on 2017/10/23.
 */
public interface ScheduleJobService extends BaseService<ScheduleJob>{


    /**
     * 保存定时任务（保存到数据库）
     * @param scheduleJob
     */
    void addTask(ScheduleJob scheduleJob);

    /**
     * 初始化定时任务
     */
    void initScheduler();

    /**
     * 添加任务 （添加到Job任务）
     * @param scheduleJob
     */
    void addJob(ScheduleJob scheduleJob) throws SchedulerException, ClassNotFoundException;

    /**
     * 查询所有任务（数据库）
     * @return
     */
    List<ScheduleJob> findAll();

    /**
     * 修改定时任务的执行状态
     * @param jobId
     * @param jobStatus
     * @throws SchedulerException
     */
    void changeStatus(String jobId, String jobStatus) throws SchedulerException, ClassNotFoundException;

    /**
     * 2017-10-25  闫增宝
     * 删除数据库中的定时任务信息
     * @param ids
     * @throws Exception
     */
    void deleteByIds(String[] ids) throws Exception;

    /**
     * @Author yanzengbao
     * @Description: 修改数据库中存储的cron表达式
     * @Date:2017/11/1 15:46
     */
    void updateCron(String jobId, String cronExpression) throws SchedulerException;

    /**
     * @Author yanzengbao
     * @Description: 根据ID查询
     * @Date:2017/11/1 15:47
     */
    ScheduleJob selectById(String jobId);

    /**
     * @Author yanzengbao
     * @Description: 修改其他信息
     * @Date:2017/11/2 15:10
     */
    void updateElseInfo(ScheduleJob scheduleJob);
}
